1
Projetando para Flexibilidade: A Interface de Tabela
AI020Lesson 4
00:00

A base de um sistema flexível reside em definir um contrato interno rígido contrato ou interface que os objetos devem seguir. Neste contexto, definimos uma Interface de Tabela onde cada objeto de célula garante a existência de três métodos específicos: minLargura(), , minAltura(), e desenhar(largura, altura).

1. O Contrato da Interface

Padronizando esses métodos, a lógica de layout pode calcular as dimensões globais das linhas e colunas sem conhecer os tipos de dados internos das células individuais. Este é um exemplo clássico de Polimorfismo Baseado em Interface.

2. Implementação de TextCell

O TextCell construtor prepara a entrada bruta dividindo strings em arrays linha por linha. Isso transfere a complexidade da fase de renderização para a fase de instanciação.

this.text = texto.split("\n");

3. Desenho Determinístico

O desenhar(largura, altura) método garante que cada saída da célula seja perfeitamente preenchida usando um repetir() auxiliar. Isso mantém o alinhamento vertical e horizontal independentemente do comprimento do conteúdo.

nomeKilimanjaroaltura5895Colunas se alinham com base na minLargura() calculada

$$\text{Preenchimento} = \text{Largura} - \text{comprimento da linha}$$

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>